package Top200;

/**
 * @author zhangmin
 * @create 2022-02-21 16:22
 * 当到达某个位置的时候，这一行中、这一列、这一个小矩形内出现过整个数字
 */
public class isValidSudoku36 {

    public boolean isValidSudoku(char[][] board) {
        //记录每一行中出现过那些数字
        boolean[][] row=new boolean[9][9];
        boolean[][] col=new boolean[9][9];
        boolean[][] cell=new boolean[9][9];
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                if (board[i][j]=='.')continue;
                int cur=board[i][j]-'0'-1;
                int cellnum=i/3*3+j/3;
                if (row[i][cur]||col[j][cur]||cell[cellnum][cur])
                    return false;
                row[i][cur]=col[j][cur]=cell[cellnum][cur]=true;
            }
        }
        return true;
    }
}
